for(int 1=0;1<500;i++); 完成这一个函数需要多长的时间啊

来源:百度知道 编辑:UC知道 时间:2024/05/16 13:39:19
和机器周期有关吗? 还是什么有关?谢谢大家了
我现在有一个程序,他是用for();来做的延时,而没有用DELAY(),或是SLEEP().我现在就是想知道做这样的一个FOR循环要用多少时间

完成 for(int 1=0;1<500;i++); 这一个函数需要的时间很短,和机器周期有关,如果循环体是空的,再慢的计算机上也看不出消耗多少时间(因为需要的时间很短)。

消耗的时间取决于循环体的运算是否复杂耗时,也与计算机在执行这个程序的同时,还在运行多少别的程序,别的程序的优先级是否比这个程序高(把CPU抢过去用了)。

你可以测时间:

#include <stdio.h>
#include <time.h>
void main ()
{
time_t start,end;
double dif;
int i,j;

time (&start); // 记录开始时间

for (j=0;j<1000;j++) // 做1000次你的循环
{
for( i=0;i<500;i++); // 你的循环
};
time (&end); // 记录结束时间

dif = difftime (end,start); // 消耗时间
printf("spent %lf sec \n",dif); // 打印出来

}

那么你就要看FOR循环里面是在做什么了。
如果什么都不做,条件为真,那就是无穷循环。
如果满足什么条件跳出FOR,那么就看条件是什么。
一般情况下条件都会跟时间计算相关联起来。
如果是单纯的for(int 1=0;1<500;i++);而没有其他步骤,
那么说明设计这个延时判断的同学编程水平比较差。
---------------------
500的循环?如果是C或者C++根本不考虑,
如果是JAVASCRIPT,那么要看里面做什么操作,
如果什么都不做,基本上也可以不考虑。
这种循环不耗时,耗时的是里面的具体操作是什么。
测试的话,
就是在for循环前输出现在的时间,